home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 6 / CU Amiga Magazine's Super CD-ROM 06 (1996)(EMAP Images)(GB)(Track 1 of 4)[!][issue 1997-01].iso / cucd / prog / gnu-c / libauto / baselocale.c < prev    next >
C/C++ Source or Header  |  1995-08-10  |  896b  |  47 lines

  1. /* call this with the following defines (for example):
  2.    
  3.    LIBRARY_NAME        "intuition.library"
  4.    LIBRARY_BASE     IntuitionBase
  5.    LIBRARY_VERS     __auto_intui_vers
  6.  
  7.  */
  8.  
  9. #include <exec/types.h>
  10. #include <inline/exec.h>
  11.  
  12. #include <unistd.h>
  13. #include <stdlib.h>
  14. #include <string.h>
  15. #include <stdio.h>
  16.  
  17. struct Library * LIBRARY_BASE = 0;
  18. extern int LIBRARY_VERS;
  19.  
  20. #define STRING(a) a, sizeof (a) - 1
  21.  
  22. static void
  23. constructor ()
  24. {
  25.   /*
  26.   ** since this is for "locale.library", we must not exit if the
  27.   ** library does not exist since then we will use builtin strings
  28.   */
  29.  
  30.   LIBRARY_BASE = OpenLibrary (LIBRARY_NAME, LIBRARY_VERS);
  31. }
  32.  
  33. static void
  34. destructor ()
  35. {
  36.   struct Library **lib;
  37.  
  38.   if (*(lib=&LIBRARY_BASE))
  39.     {
  40.       CloseLibrary (*lib);
  41.       *lib = 0;
  42.     }
  43. }
  44.  
  45. asm ("    .text;     .stabs \"___CTOR_LIST__\",22,0,0,_constructor");
  46. asm ("    .text;     .stabs \"___DTOR_LIST__\",22,0,0,_destructor");
  47.